﻿using Mes.Application.DTO.Inputs.MasterData;
using Mes.Application.DTO.Results.MasterData;
using Mes.Domain.BoundedContext;
using Mes.Domain.BoundedContext.Entities.MasterData;

namespace Mes.Application.Services.MasterData
{
    public interface IProductionUnitTypeService
    {
        /// <summary>
        /// 新增生产单元类型
        /// </summary>
        /// <param name="productionUnitTypeInput"></param>
        /// <returns></returns>
        Task<ProductionUnitType> AddProductionUnitTypeAsync(ProductionUnitTypeInput productionUnitTypeInput);

        /// <summary>
        /// 修改生产单元类型
        /// </summary>
        /// <param name="productionUnitTypeUpdateInput"></param>
        /// <returns></returns>
        Task UpdateProductionUnitTypeAsync(ProductionUnitTypeUpdateInput productionUnitTypeUpdateInput);

        /// <summary>
        /// 删除生产单元类型
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        Task DeleteProductionUnitTypeAsync(int[] ids);

        /// <summary>
        /// 根据主键编号查询指定生产单元类型
        /// </summary>
        /// <param name="id"></param>
        /// <returns>ProductionUnitTypeResult</returns>
        Task<ProductionUnitTypeResult> GetProductionUnitTypeAsync(int id);

        /// <summary>
        /// 分页查询生产单元类型
        /// </summary>
        /// <param name="productionUnitTypePageInput"></param>
        /// <returns>PagedItemsData<ProductionUnitTypeResult></returns>
        Task<PagedItemsData<ProductionUnitTypeResult>> GetProductionUnitTypesAsync(ProductionUnitTypePageInput productionUnitTypePageInput);
    }
}
